feat(desktop): add NFC-V (ISO 15693) support for PC/SC readers#236
Merged
codebutler merged 4 commits intomasterfrom Feb 17, 2026
Merged
feat(desktop): add NFC-V (ISO 15693) support for PC/SC readers#236codebutler merged 4 commits intomasterfrom
codebutler merged 4 commits intomasterfrom
Conversation
Add SS byte constants for ICODE SLI (0x07) and Tag-it HFI (0x0C) to PCSCCardInfo, mapping them to CardType.Vicinity. Includes unit tests for both NFC-V ATR patterns plus a regression test for Classic 1K. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements VicinityTechnology using PC/SC transparent pseudo-APDUs (FF 00 00 00) to send raw ISO 15693 commands through the reader's contactless interface. Also adds java.smartcardio module to the test compilation classpath and includes FakePCSCChannel test helper. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add CardType.Vicinity case to PcscReaderBackend.readCard() that creates a PCSCVicinityTechnology and delegates to VicinityCardReader. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SS=0x07, Tag-it HFISS=0x0C)PCSCVicinityTechnologyimplementingVicinityTechnologyover PC/SC transparent pseudo-APDUs (FF 00 00 00)CardType.VicinityintoPcscReaderBackend.readCard()to complete the desktop PC/SC reading pathWorks with PC/SC readers that have ISO 15693 firmware support (ACR1252U, Omnikey 5022/5427, Identiv uTrust 3700F, SpringCard H663). Readers without ISO 15693 support (e.g., ACR122U with internal PN532) will simply never present NFC-V cards — no fallback needed.
PN53x-based backends (Desktop USB
PN53xReaderBackend, Web WebUSBWebCardScanner) cannot support NFC-V due to hardware limitations — the PN533 chip only supports ISO 14443-A/B and FeliCa modulations. No code changes needed for those paths.Test plan
PCSCCardInfoTest: 3 tests — NFC-V ICODE SLI ATR, Tag-it HFI ATR, Classic 1K regressionPCSCVicinityTechnologyTest: 2 tests — UID passthrough, connect/close lifecycle./gradlew allTestspasses (card + transit JVM tests verified locally)🤖 Generated with Claude Code